package com.ihrm.system.service;

import com.ihrm.domain.system.User;
import org.springframework.data.domain.Page;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @author 小伟
 * @version V1.0
 * @Package com.ihrm.system.service
 * @date 2020/12/12 17:40
 * @Copyright © 2020-2021 郑州恒星科技有限责任公司
 * 用户service接口
 */
public interface UserService {
    /**
     * 添加用户信息
     * @param user 用户对象
     */
    void saveUser(User user);

    /**
     * 修改用户信息
     * @param user 用户对象
     */
    void updateUser(User user);

    /**
     * 根据id查询用户信息
     * @param id 用户id
     * @return 用户信息
     */
    User findById(String id);

    /**
     * 查询企业全部用户信息
     * @param page 页码
     * @param size 页面大小
     * @param map 参数列表
     * @return 用户列表
     */
    Page<User> findAll(int page, int size, Map<String, Object> map);

    /**
     * 根据企业id查询全部员工
     * @return
     */
    List<User> findAllSimple(String companyId);
    /**
     * 根据用户id删除用户
     * @param id 用户id
     */
    void deleteById(String id);

    /**
     * 为用户分配角色
     * @param userId 用户id
     * @param roleIds 角色id集合
     */
    void assignRoles(String userId, List<String> roleIds);

    /**
     * 用户登录
     * @param mobile 用户名（手机号码）
     * @return 登录结果
     */
    User findByMobile(String mobile);

    /**
     *  批量添加用户信息
     * @param userList 用户集合
     * @param companyId 企业id
     * @param companyName 企业名称
     */
    void addAll(List<User> userList,String companyId,String companyName);

    /**
     * 上传用户头像
     * @param id 用户id
     * @param file 头像文件
     * @return 头像访问URL
     */
    String uploadStaffPhoto(String id, MultipartFile file) throws IOException;
}
